<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libslic3r: src/libslic3r/TriangleMesh.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Slic3r_192px_transparent.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">libslic3r
   </div>
   <div id="projectbrief">Library for generating gcode from 3d models</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_f69e6fbaea45487e96bc9ed8ccf9ff8f.html">libslic3r</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">TriangleMesh.hpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_triangle_mesh_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef slic3r_TriangleMesh_hpp_</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define slic3r_TriangleMesh_hpp_</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="libslic3r_8h.html">libslic3r.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;admesh/stl.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &lt;boost/thread.hpp&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bounding_box_8hpp.html">BoundingBox.hpp</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8hpp.html">Line.hpp</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_point_8hpp.html">Point.hpp</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_polygon_8hpp.html">Polygon.hpp</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ex_polygon_8hpp.html">ExPolygon.hpp</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_slic3r.html">Slic3r</a> {</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="namespace_slic3r.html#a02533897b506280a98d44794bad904a1">   17</a></span>&#160;<span class="keyword">template</span> &lt;Axis A&gt; <span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer</a>;</div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="keyword">typedef</span> std::vector&lt;TriangleMesh*&gt; <a class="code" href="namespace_slic3r.html#a02533897b506280a98d44794bad904a1">TriangleMeshPtrs</a>;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html">   20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a193142ccf13bbc7009cabd4907f76fe6">TriangleMesh</a>();</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a193142ccf13bbc7009cabd4907f76fe6">TriangleMesh</a>(<span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#a3e902317d6a5dd562530764ca117df76">Pointf3s</a> &amp;points, <span class="keyword">const</span> std::vector&lt;Point3&gt; &amp;facets);</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a193142ccf13bbc7009cabd4907f76fe6">TriangleMesh</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> &amp;other);</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a6e09124a86716072d6a5bf16a68409bb">operator= </a>(<a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> other);</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a83ae150823ff9e0815c0b42fb1b21ea4">swap</a>(<a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> &amp;other);</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aefe1df9108630f6940e000f2f3ab3350">~TriangleMesh</a>();</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af2f81d94450674bf72246258645933cc">ReadSTLFile</a>(<span class="keyword">const</span> std::string &amp;input_file);</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a2ef5e81ea5384d64086270ef382863f3">write_ascii</a>(<span class="keyword">const</span> std::string &amp;output_file);</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aa11877f13a283c2308e72656825eb0bc">write_binary</a>(<span class="keyword">const</span> std::string &amp;output_file);</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a11f293892f1af889bb5b9850c1d8f58e">repair</a>();</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aac228086b4b4f7afee6da6abfb06e993">check_topology</a>();</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a2523b24915fcac8a358c6dbef74361ff">volume</a>();</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a9e6b589b02a36301057883eb7b8e75ab">is_manifold</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a659046d9de88eb66f77181b3551d742f">WriteOBJFile</a>(<span class="keyword">const</span> std::string &amp;output_file);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af0cd826c02d60fd188015858fda03074">scale</a>(<span class="keywordtype">float</span> factor);</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af0cd826c02d60fd188015858fda03074">scale</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_pointf3.html">Pointf3</a> &amp;versor);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aa0b52c984b1529bfcc6c563a228194ad">translate</a>(<span class="keywordtype">float</span> x, <span class="keywordtype">float</span> y, <span class="keywordtype">float</span> z);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af7f94e410f2b2f1379b239084fc15b36">rotate</a>(<span class="keywordtype">float</span> angle, <span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8">Axis</a> &amp;axis);</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a92a73001e8fa8cf513a18a5465d43965">rotate_x</a>(<span class="keywordtype">float</span> angle);</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a0be942dd560d8c0bf6fff6f1f3a6aef9">rotate_y</a>(<span class="keywordtype">float</span> angle);</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ad82c1075191973c5e4fc2e81118537ce">rotate_z</a>(<span class="keywordtype">float</span> angle);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a941b4123ba7e395f34301bf2aa9aa53b">mirror</a>(<span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8">Axis</a> &amp;axis);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#acff2ed6c6254c62af18b99ecac7e1559">mirror_x</a>();</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a8ef79972e7f83fafd3db890fec712fba">mirror_y</a>();</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ae944f47018c11b8cd10d7baeb83253d2">mirror_z</a>();</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a37c9d7f764da35c0c480b635af3e0281">align_to_origin</a>();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#adbdcdb5388838e9cc8184e67efd439a1">center_around_origin</a>();</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af7f94e410f2b2f1379b239084fc15b36">rotate</a>(<span class="keywordtype">double</span> angle, <a class="code" href="class_slic3r_1_1_point.html">Point</a>* center);</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    TriangleMeshPtrs <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aae04c786e876d03cb36d08827313477e">split</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    TriangleMeshPtrs <a class="code" href="class_slic3r_1_1_triangle_mesh.html#adaf5c32f88bb8664dc38166e0fa02343">cut_by_grid</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_pointf.html">Pointf</a> &amp;grid) <span class="keyword">const</span>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#af06fdede750ab368ef3bcfb0927f4750">merge</a>(<span class="keyword">const</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> &amp;mesh);</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a3b95085d339b4e4fa013ff237557907e">horizontal_projection</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <a class="code" href="class_slic3r_1_1_polygon.html">Polygon</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ae477cf56210d976c04547c99d9c64a61">convex_hull</a>();</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <a class="code" href="class_slic3r_1_1_bounding_boxf3.html">BoundingBoxf3</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a65f8cca8e3c7f493f13b94e95316a680">bounding_box</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ab49fcbbf41f2a2ca340aeef4dc50bd83">reset_repair_stats</a>();</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ab562eabfb188c584ed79f9a4bbbadc03">needed_repair</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aff5908410672f10206876d0a5c52d3e1">facets_count</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#ad1da3d91449e31fe562d889b7a982b1d">extrude_tin</a>(<span class="keywordtype">float</span> <a class="code" href="namespace_slic3r.html#add47402365cb0ce998aa2e3740986978">offset</a>);</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a2d89247104b407c487c6fef061035d3a">require_shared_vertices</a>();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#aab1e7933bbea882e16c50f28816325b2">reverse_normals</a>();</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a465fa34a496fe929db5fb48fd040c8fb">make_cube</a>(<span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    </div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a104677199796b2deaa6f73df8c915fbe">make_cylinder</a>(<span class="keywordtype">double</span> r, <span class="keywordtype">double</span> h, <span class="keywordtype">double</span> fa=(2*<a class="code" href="namespace_slic3r.html#a5c9e075207afe0701500fff332a281bc">PI</a>/360));</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    </div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a315f81a31082820426883ef4b5fc0ffd">make_sphere</a>(<span class="keywordtype">double</span> rho, <span class="keywordtype">double</span> fa=(2*<a class="code" href="namespace_slic3r.html#a5c9e075207afe0701500fff332a281bc">PI</a>/360));</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html#a42cb31b8e8ca43e31b713ad73b04514e">   78</a></span>&#160;    stl_file <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a42cb31b8e8ca43e31b713ad73b04514e">stl</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html#a5e42cbf1720ec7648e1c05598da60f20">   80</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_slic3r_1_1_triangle_mesh.html#a5e42cbf1720ec7648e1c05598da60f20">repaired</a>;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    </div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html#a0c6ab4d441e7a973b9f7b5e4edd928c8">   83</a></span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer</a>&lt;<a class="code" href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8aea4f41ceb26107aab036b3cebd6e3a13">X</a>&gt;;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html#a6cdbd858ef3cf5f3534b076fd43538c8">   84</a></span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer</a>&lt;<a class="code" href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8a27608ebdfb47b8076b0ed8c01be502f9">Y</a>&gt;;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh.html#a4309abeac8858ad5767d5c5e4f258197">   85</a></span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer</a>&lt;<a class="code" href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8a4ff0bb5a0a25cbaf7b74abc10f83e87e">Z</a>&gt;;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0accab1eab14c434d5ab651e97df355099998">   88</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acc">FacetEdgeType</a> { <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca3b5bf6969c0ca9d261eab021ac7d5a41">feNone</a>, <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0accab1eab14c434d5ab651e97df355099998">feTop</a>, <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca45043aae4a44dfa8928bed1eaaf26ec3">feBottom</a>, <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca47f5623bc954afe23baa62a569369510">feHorizontal</a> };</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_point.html">   90</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_intersection_point.html">IntersectionPoint</a> : <span class="keyword">public</span> <a class="code" href="class_slic3r_1_1_point.html">Point</a></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_point.html#a43bc4eed9430f6d0ba5fc3d9c1415dae">   93</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_slic3r_1_1_intersection_point.html#a43bc4eed9430f6d0ba5fc3d9c1415dae">point_id</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_point.html#a8e5811997a649816a0a6dc186509dd9f">   94</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_slic3r_1_1_intersection_point.html#a8e5811997a649816a0a6dc186509dd9f">edge_id</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_point.html#a82a79f7df57a8796bdb74410d2e59e1c">   95</a></span>&#160;    <a class="code" href="class_slic3r_1_1_intersection_point.html#a82a79f7df57a8796bdb74410d2e59e1c">IntersectionPoint</a>() : point_id(-1), edge_id(-1) {};</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;};</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html">   98</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_intersection_line.html">IntersectionLine</a> : <span class="keyword">public</span> <a class="code" href="class_slic3r_1_1_line.html">Line</a></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#abf1d49b1923f83b0c0af01cc9facfe9b">  101</a></span>&#160;    <span class="keywordtype">int</span>             <a class="code" href="class_slic3r_1_1_intersection_line.html#abf1d49b1923f83b0c0af01cc9facfe9b">a_id</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#abe30a2d05a6e7728f54784de581b7c1d">  102</a></span>&#160;    <span class="keywordtype">int</span>             <a class="code" href="class_slic3r_1_1_intersection_line.html#abe30a2d05a6e7728f54784de581b7c1d">b_id</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#af589e87ec4e87968db6b15db4e53f360">  103</a></span>&#160;    <span class="keywordtype">int</span>             <a class="code" href="class_slic3r_1_1_intersection_line.html#af589e87ec4e87968db6b15db4e53f360">edge_a_id</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#a6ba138925c1a090a621abcc789c4ec38">  104</a></span>&#160;    <span class="keywordtype">int</span>             <a class="code" href="class_slic3r_1_1_intersection_line.html#a6ba138925c1a090a621abcc789c4ec38">edge_b_id</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#a34e2495b427bfd271cb46dcf0c3fdba5">  105</a></span>&#160;    <a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acc">FacetEdgeType</a>   <a class="code" href="class_slic3r_1_1_intersection_line.html#a34e2495b427bfd271cb46dcf0c3fdba5">edge_type</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#a8aaca5831e52c5a8487955f69fab6d27">  106</a></span>&#160;    <span class="keywordtype">bool</span>            <a class="code" href="class_slic3r_1_1_intersection_line.html#a8aaca5831e52c5a8487955f69fab6d27">skip</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_intersection_line.html#a3c1ca6b7bd07e6706f746497eb7d4331">  107</a></span>&#160;    <a class="code" href="class_slic3r_1_1_intersection_line.html#a3c1ca6b7bd07e6706f746497eb7d4331">IntersectionLine</a>() : a_id(-1), b_id(-1), edge_a_id(-1), edge_b_id(-1), edge_type(<a class="code" href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca3b5bf6969c0ca9d261eab021ac7d5a41">feNone</a>), skip(false) {};</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="namespace_slic3r.html#ac7ccb74e316abd7606034f0b2179b92f">  109</a></span>&#160;<span class="keyword">typedef</span> std::vector&lt;IntersectionLine&gt; <a class="code" href="namespace_slic3r.html#ac7ccb74e316abd7606034f0b2179b92f">IntersectionLines</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespace_slic3r.html#a118a352345b113d82f2e0a0161df9905">  110</a></span>&#160;<span class="keyword">typedef</span> std::vector&lt;IntersectionLine*&gt; <a class="code" href="namespace_slic3r.html#a118a352345b113d82f2e0a0161df9905">IntersectionLinePtrs</a>;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">template</span> &lt;Axis A&gt;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keyword">class </span><a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer</a></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="class_slic3r_1_1_triangle_mesh_slicer.html#a17a2625fce7b59bc6f836e1c6e18be5b">  118</a></span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>* <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#a17a2625fce7b59bc6f836e1c6e18be5b">mesh</a>;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#af70436176396fcff786a2cc28b7e51f3">TriangleMeshSlicer</a>(<a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>* _mesh);</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#a4ba3bfa8bd19b8b7b9b6d34fad4b9250">~TriangleMeshSlicer</a>();</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#a3d6d4e1f0b3f54784243f46ebbc3e3a2">slice</a>(<span class="keyword">const</span> std::vector&lt;float&gt; &amp;z, std::vector&lt;Polygons&gt;* layers) <span class="keyword">const</span>;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#a3d6d4e1f0b3f54784243f46ebbc3e3a2">slice</a>(<span class="keyword">const</span> std::vector&lt;float&gt; &amp;z, std::vector&lt;ExPolygons&gt;* layers) <span class="keyword">const</span>;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#a3d6d4e1f0b3f54784243f46ebbc3e3a2">slice</a>(<span class="keywordtype">float</span> z, <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a>* slices) <span class="keyword">const</span>;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#acf33444ff6c496576619746508acd082">slice_facet</a>(<span class="keywordtype">float</span> slice_z, <span class="keyword">const</span> stl_facet &amp;facet, <span class="keyword">const</span> <span class="keywordtype">int</span> &amp;facet_idx,</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">float</span> &amp;min_z, <span class="keyword">const</span> <span class="keywordtype">float</span> &amp;max_z, std::vector&lt;IntersectionLine&gt;* lines,</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        boost::mutex* lines_mutex = NULL) <span class="keyword">const</span>;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    </div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html#aec389aab76dc4c1694a08da38202d7b8">cut</a>(<span class="keywordtype">float</span> z, <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>* upper, <a class="code" href="class_slic3r_1_1_triangle_mesh.html">TriangleMesh</a>* lower) <span class="keyword">const</span>;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    </div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    <span class="keyword">typedef</span> std::vector&lt; std::vector&lt;int&gt; &gt; t_facets_edges;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    t_facets_edges facets_edges;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    stl_vertex* v_scaled_shared;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="keywordtype">void</span> _slice_do(<span class="keywordtype">size_t</span> facet_idx, std::vector&lt;IntersectionLines&gt;* lines, boost::mutex* lines_mutex, <span class="keyword">const</span> std::vector&lt;float&gt; &amp;z) <span class="keyword">const</span>;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">void</span> _make_loops_do(<span class="keywordtype">size_t</span> i, std::vector&lt;IntersectionLines&gt;* lines, std::vector&lt;Polygons&gt;* layers) <span class="keyword">const</span>;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span> make_loops(std::vector&lt;IntersectionLine&gt; &amp;lines, <a class="code" href="namespace_slic3r.html#ac070ff2d90c6488a48adf1814cdae06c">Polygons</a>* loops) <span class="keyword">const</span>;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> make_expolygons(<span class="keyword">const</span> <a class="code" href="namespace_slic3r.html#ac070ff2d90c6488a48adf1814cdae06c">Polygons</a> &amp;loops, <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a>* slices) <span class="keyword">const</span>;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">void</span> make_expolygons_simple(std::vector&lt;IntersectionLine&gt; &amp;lines, <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a>* slices) <span class="keyword">const</span>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordtype">void</span> make_expolygons(std::vector&lt;IntersectionLine&gt; &amp;lines, <a class="code" href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">ExPolygons</a>* slices) <span class="keyword">const</span>;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    </div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">float</span>&amp; _x(stl_vertex &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keywordtype">float</span>&amp; _y(stl_vertex &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">float</span>&amp; _z(stl_vertex &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; _x(stl_vertex <span class="keyword">const</span> &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; _y(stl_vertex <span class="keyword">const</span> &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">float</span>&amp; _z(stl_vertex <span class="keyword">const</span> &amp;vertex) <span class="keyword">const</span>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;};</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_x</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_y</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_z</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_x</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_y</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;X&gt;::_z</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_x</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_y</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_z</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_x</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_y</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Y&gt;::_z</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_x</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_y</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_z</a>(stl_vertex &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_x</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.x; }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_y</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.y; }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="keyword">template</span>&lt;&gt; <span class="keyword">inline</span> <span class="keywordtype">float</span> <span class="keyword">const</span>&amp; <a class="code" href="class_slic3r_1_1_triangle_mesh_slicer.html">TriangleMeshSlicer&lt;Z&gt;::_z</a>(stl_vertex <span class="keyword">const</span> &amp;vertex)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex.z; }</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;}</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a42cb31b8e8ca43e31b713ad73b04514e"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a42cb31b8e8ca43e31b713ad73b04514e">Slic3r::TriangleMesh::stl</a></div><div class="ttdeci">stl_file stl</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:78</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a315f81a31082820426883ef4b5fc0ffd"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a315f81a31082820426883ef4b5fc0ffd">Slic3r::TriangleMesh::make_sphere</a></div><div class="ttdeci">static TriangleMesh make_sphere(double rho, double fa=(2 *PI/360))</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:660</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_a3d6d4e1f0b3f54784243f46ebbc3e3a2"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#a3d6d4e1f0b3f54784243f46ebbc3e3a2">Slic3r::TriangleMeshSlicer::slice</a></div><div class="ttdeci">void slice(const std::vector&lt; float &gt; &amp;z, std::vector&lt; Polygons &gt; *layers) const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:739</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_point_html"><div class="ttname"><a href="class_slic3r_1_1_intersection_point.html">Slic3r::IntersectionPoint</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:90</div></div>
<div class="ttc" id="namespace_slic3r_html_aec0518765dd6991c31ac6c40872edef8a4ff0bb5a0a25cbaf7b74abc10f83e87e"><div class="ttname"><a href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8a4ff0bb5a0a25cbaf7b74abc10f83e87e">Slic3r::Z</a></div><div class="ttdef"><b>Definition:</b> libslic3r.h:69</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_adaf5c32f88bb8664dc38166e0fa02343"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#adaf5c32f88bb8664dc38166e0fa02343">Slic3r::TriangleMesh::cut_by_grid</a></div><div class="ttdeci">TriangleMeshPtrs cut_by_grid(const Pointf &amp;grid) const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:418</div></div>
<div class="ttc" id="libslic3r_8h_html"><div class="ttname"><a href="libslic3r_8h.html">libslic3r.h</a></div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_abe30a2d05a6e7728f54784de581b7c1d"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#abe30a2d05a6e7728f54784de581b7c1d">Slic3r::IntersectionLine::b_id</a></div><div class="ttdeci">int b_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:102</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_point_html_a43bc4eed9430f6d0ba5fc3d9c1415dae"><div class="ttname"><a href="class_slic3r_1_1_intersection_point.html#a43bc4eed9430f6d0ba5fc3d9c1415dae">Slic3r::IntersectionPoint::point_id</a></div><div class="ttdeci">int point_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:93</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a37c9d7f764da35c0c480b635af3e0281"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a37c9d7f764da35c0c480b635af3e0281">Slic3r::TriangleMesh::align_to_origin</a></div><div class="ttdeci">void align_to_origin()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:338</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html">Slic3r::TriangleMeshSlicer</a></div><div class="ttdoc">Class for processing TriangleMesh objects. </div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:17</div></div>
<div class="ttc" id="namespace_slic3r_html_add47402365cb0ce998aa2e3740986978"><div class="ttname"><a href="namespace_slic3r.html#add47402365cb0ce998aa2e3740986978">Slic3r::offset</a></div><div class="ttdeci">Polygons offset(const Polygons &amp;polygons, const float delta, double scale, ClipperLib::JoinType joinType, double miterLimit)</div><div class="ttdef"><b>Definition:</b> ClipperUtils.cpp:153</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ad82c1075191973c5e4fc2e81118537ce"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ad82c1075191973c5e4fc2e81118537ce">Slic3r::TriangleMesh::rotate_z</a></div><div class="ttdeci">void rotate_z(float angle)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:306</div></div>
<div class="ttc" id="namespace_slic3r_html_ac070ff2d90c6488a48adf1814cdae06c"><div class="ttname"><a href="namespace_slic3r.html#ac070ff2d90c6488a48adf1814cdae06c">Slic3r::Polygons</a></div><div class="ttdeci">std::vector&lt; Polygon &gt; Polygons</div><div class="ttdef"><b>Definition:</b> Polygon.hpp:13</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a5e42cbf1720ec7648e1c05598da60f20"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a5e42cbf1720ec7648e1c05598da60f20">Slic3r::TriangleMesh::repaired</a></div><div class="ttdeci">bool repaired</div><div class="ttdoc">Whether or not this mesh has been repaired. </div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:80</div></div>
<div class="ttc" id="class_slic3r_1_1_line_html"><div class="ttname"><a href="class_slic3r_1_1_line.html">Slic3r::Line</a></div><div class="ttdef"><b>Definition:</b> Line.hpp:16</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aab1e7933bbea882e16c50f28816325b2"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aab1e7933bbea882e16c50f28816325b2">Slic3r::TriangleMesh::reverse_normals</a></div><div class="ttdeci">void reverse_normals()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:534</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_a6ba138925c1a090a621abcc789c4ec38"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#a6ba138925c1a090a621abcc789c4ec38">Slic3r::IntersectionLine::edge_b_id</a></div><div class="ttdeci">int edge_b_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:104</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a83ae150823ff9e0815c0b42fb1b21ea4"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a83ae150823ff9e0815c0b42fb1b21ea4">Slic3r::TriangleMesh::swap</a></div><div class="ttdeci">void swap(TriangleMesh &amp;other)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:103</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a465fa34a496fe929db5fb48fd040c8fb"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a465fa34a496fe929db5fb48fd040c8fb">Slic3r::TriangleMesh::make_cube</a></div><div class="ttdeci">static TriangleMesh make_cube(double x, double y, double z)</div><div class="ttdoc">Generate a mesh representing a cube with dimensions (x, y, z), with one corner at (0...</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:591</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_af589e87ec4e87968db6b15db4e53f360"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#af589e87ec4e87968db6b15db4e53f360">Slic3r::IntersectionLine::edge_a_id</a></div><div class="ttdeci">int edge_a_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:103</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a659046d9de88eb66f77181b3551d742f"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a659046d9de88eb66f77181b3551d742f">Slic3r::TriangleMesh::WriteOBJFile</a></div><div class="ttdeci">void WriteOBJFile(const std::string &amp;output_file)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:249</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a2ef5e81ea5384d64086270ef382863f3"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a2ef5e81ea5384d64086270ef382863f3">Slic3r::TriangleMesh::write_ascii</a></div><div class="ttdeci">void write_ascii(const std::string &amp;output_file)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:124</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aa11877f13a283c2308e72656825eb0bc"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aa11877f13a283c2308e72656825eb0bc">Slic3r::TriangleMesh::write_binary</a></div><div class="ttdeci">void write_binary(const std::string &amp;output_file)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:134</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_af0cd826c02d60fd188015858fda03074"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#af0cd826c02d60fd188015858fda03074">Slic3r::TriangleMesh::scale</a></div><div class="ttdeci">void scale(float factor)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:259</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_acff2ed6c6254c62af18b99ecac7e1559"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#acff2ed6c6254c62af18b99ecac7e1559">Slic3r::TriangleMesh::mirror_x</a></div><div class="ttdeci">void mirror_x()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:323</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aff5908410672f10206876d0a5c52d3e1"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aff5908410672f10206876d0a5c52d3e1">Slic3r::TriangleMesh::facets_count</a></div><div class="ttdeci">size_t facets_count() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:243</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aefe1df9108630f6940e000f2f3ab3350"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aefe1df9108630f6940e000f2f3ab3350">Slic3r::TriangleMesh::~TriangleMesh</a></div><div class="ttdeci">~TriangleMesh()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:109</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a9e6b589b02a36301057883eb7b8e75ab"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a9e6b589b02a36301057883eb7b8e75ab">Slic3r::TriangleMesh::is_manifold</a></div><div class="ttdeci">bool is_manifold() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:215</div></div>
<div class="ttc" id="_polygon_8hpp_html"><div class="ttname"><a href="_polygon_8hpp.html">Polygon.hpp</a></div></div>
<div class="ttc" id="_point_8hpp_html"><div class="ttname"><a href="_point_8hpp.html">Point.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_a17a2625fce7b59bc6f836e1c6e18be5b"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#a17a2625fce7b59bc6f836e1c6e18be5b">Slic3r::TriangleMeshSlicer::mesh</a></div><div class="ttdeci">TriangleMesh * mesh</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:118</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aa0b52c984b1529bfcc6c563a228194ad"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aa0b52c984b1529bfcc6c563a228194ad">Slic3r::TriangleMesh::translate</a></div><div class="ttdeci">void translate(float x, float y, float z)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:275</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ab49fcbbf41f2a2ca340aeef4dc50bd83"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ab49fcbbf41f2a2ca340aeef4dc50bd83">Slic3r::TriangleMesh::reset_repair_stats</a></div><div class="ttdeci">void reset_repair_stats()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:221</div></div>
<div class="ttc" id="namespace_slic3r_html_a02533897b506280a98d44794bad904a1"><div class="ttname"><a href="namespace_slic3r.html#a02533897b506280a98d44794bad904a1">Slic3r::TriangleMeshPtrs</a></div><div class="ttdeci">std::vector&lt; TriangleMesh * &gt; TriangleMeshPtrs</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:17</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_af7f94e410f2b2f1379b239084fc15b36"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#af7f94e410f2b2f1379b239084fc15b36">Slic3r::TriangleMesh::rotate</a></div><div class="ttdeci">void rotate(float angle, const Axis &amp;axis)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:281</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ad1da3d91449e31fe562d889b7a982b1d"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ad1da3d91449e31fe562d889b7a982b1d">Slic3r::TriangleMesh::extrude_tin</a></div><div class="ttdeci">void extrude_tin(float offset)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:541</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_a3c1ca6b7bd07e6706f746497eb7d4331"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#a3c1ca6b7bd07e6706f746497eb7d4331">Slic3r::IntersectionLine::IntersectionLine</a></div><div class="ttdeci">IntersectionLine()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:107</div></div>
<div class="ttc" id="namespace_slic3r_html_aec0518765dd6991c31ac6c40872edef8aea4f41ceb26107aab036b3cebd6e3a13"><div class="ttname"><a href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8aea4f41ceb26107aab036b3cebd6e3a13">Slic3r::X</a></div><div class="ttdef"><b>Definition:</b> libslic3r.h:69</div></div>
<div class="ttc" id="namespace_slic3r_html_a8aae0f299cf74413194a5966d41d0acca47f5623bc954afe23baa62a569369510"><div class="ttname"><a href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca47f5623bc954afe23baa62a569369510">Slic3r::feHorizontal</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:88</div></div>
<div class="ttc" id="namespace_slic3r_html_a3e902317d6a5dd562530764ca117df76"><div class="ttname"><a href="namespace_slic3r.html#a3e902317d6a5dd562530764ca117df76">Slic3r::Pointf3s</a></div><div class="ttdeci">std::vector&lt; Pointf3 &gt; Pointf3s</div><div class="ttdef"><b>Definition:</b> Point.hpp:25</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_point_html_a8e5811997a649816a0a6dc186509dd9f"><div class="ttname"><a href="class_slic3r_1_1_intersection_point.html#a8e5811997a649816a0a6dc186509dd9f">Slic3r::IntersectionPoint::edge_id</a></div><div class="ttdeci">int edge_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:94</div></div>
<div class="ttc" id="namespace_slic3r_html_a118a352345b113d82f2e0a0161df9905"><div class="ttname"><a href="namespace_slic3r.html#a118a352345b113d82f2e0a0161df9905">Slic3r::IntersectionLinePtrs</a></div><div class="ttdeci">std::vector&lt; IntersectionLine * &gt; IntersectionLinePtrs</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:110</div></div>
<div class="ttc" id="_bounding_box_8hpp_html"><div class="ttname"><a href="_bounding_box_8hpp.html">BoundingBox.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ab562eabfb188c584ed79f9a4bbbadc03"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ab562eabfb188c584ed79f9a4bbbadc03">Slic3r::TriangleMesh::needed_repair</a></div><div class="ttdeci">bool needed_repair() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:232</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a6e09124a86716072d6a5bf16a68409bb"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a6e09124a86716072d6a5bf16a68409bb">Slic3r::TriangleMesh::operator=</a></div><div class="ttdeci">TriangleMesh &amp; operator=(TriangleMesh other)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:96</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a2d89247104b407c487c6fef061035d3a"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a2d89247104b407c487c6fef061035d3a">Slic3r::TriangleMesh::require_shared_vertices</a></div><div class="ttdeci">void require_shared_vertices()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:527</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a104677199796b2deaa6f73df8c915fbe"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a104677199796b2deaa6f73df8c915fbe">Slic3r::TriangleMesh::make_cylinder</a></div><div class="ttdeci">static TriangleMesh make_cylinder(double r, double h, double fa=(2 *PI/360))</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:615</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a3b95085d339b4e4fa013ff237557907e"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a3b95085d339b4e4fa013ff237557907e">Slic3r::TriangleMesh::horizontal_projection</a></div><div class="ttdeci">ExPolygons horizontal_projection() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:481</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_af2f81d94450674bf72246258645933cc"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#af2f81d94450674bf72246258645933cc">Slic3r::TriangleMesh::ReadSTLFile</a></div><div class="ttdeci">void ReadSTLFile(const std::string &amp;input_file)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:114</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a11f293892f1af889bb5b9850c1d8f58e"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a11f293892f1af889bb5b9850c1d8f58e">Slic3r::TriangleMesh::repair</a></div><div class="ttdeci">void repair()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:144</div></div>
<div class="ttc" id="class_slic3r_1_1_point_html"><div class="ttname"><a href="class_slic3r_1_1_point.html">Slic3r::Point</a></div><div class="ttdef"><b>Definition:</b> Point.hpp:27</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_af06fdede750ab368ef3bcfb0927f4750"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#af06fdede750ab368ef3bcfb0927f4750">Slic3r::TriangleMesh::merge</a></div><div class="ttdeci">void merge(const TriangleMesh &amp;mesh)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:459</div></div>
<div class="ttc" id="namespace_slic3r_html"><div class="ttname"><a href="namespace_slic3r.html">Slic3r</a></div><div class="ttdef"><b>Definition:</b> BoundingBox.cpp:4</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a193142ccf13bbc7009cabd4907f76fe6"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a193142ccf13bbc7009cabd4907f76fe6">Slic3r::TriangleMesh::TriangleMesh</a></div><div class="ttdeci">TriangleMesh()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:24</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aae04c786e876d03cb36d08827313477e"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aae04c786e876d03cb36d08827313477e">Slic3r::TriangleMesh::split</a></div><div class="ttdeci">TriangleMeshPtrs split() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:365</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_acf33444ff6c496576619746508acd082"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#acf33444ff6c496576619746508acd082">Slic3r::TriangleMeshSlicer::slice_facet</a></div><div class="ttdeci">void slice_facet(float slice_z, const stl_facet &amp;facet, const int &amp;facet_idx, const float &amp;min_z, const float &amp;max_z, std::vector&lt; IntersectionLine &gt; *lines, boost::mutex *lines_mutex=NULL) const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:853</div></div>
<div class="ttc" id="namespace_slic3r_html_a5c9e075207afe0701500fff332a281bc"><div class="ttname"><a href="namespace_slic3r.html#a5c9e075207afe0701500fff332a281bc">Slic3r::PI</a></div><div class="ttdeci">constexpr auto PI</div><div class="ttdef"><b>Definition:</b> libslic3r.h:60</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_aec389aab76dc4c1694a08da38202d7b8"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#aec389aab76dc4c1694a08da38202d7b8">Slic3r::TriangleMeshSlicer::cut</a></div><div class="ttdeci">void cut(float z, TriangleMesh *upper, TriangleMesh *lower) const</div><div class="ttdoc">Splits the current mesh into two parts. </div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:1242</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_adbdcdb5388838e9cc8184e67efd439a1"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#adbdcdb5388838e9cc8184e67efd439a1">Slic3r::TriangleMesh::center_around_origin</a></div><div class="ttdeci">void center_around_origin()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:347</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a941b4123ba7e395f34301bf2aa9aa53b"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a941b4123ba7e395f34301bf2aa9aa53b">Slic3r::TriangleMesh::mirror</a></div><div class="ttdeci">void mirror(const Axis &amp;axis)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:311</div></div>
<div class="ttc" id="_line_8hpp_html"><div class="ttname"><a href="_line_8hpp.html">Line.hpp</a></div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_a34e2495b427bfd271cb46dcf0c3fdba5"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#a34e2495b427bfd271cb46dcf0c3fdba5">Slic3r::IntersectionLine::edge_type</a></div><div class="ttdeci">FacetEdgeType edge_type</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:105</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html">Slic3r::IntersectionLine</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:98</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a92a73001e8fa8cf513a18a5465d43965"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a92a73001e8fa8cf513a18a5465d43965">Slic3r::TriangleMesh::rotate_x</a></div><div class="ttdeci">void rotate_x(float angle)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:296</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_a8aaca5831e52c5a8487955f69fab6d27"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#a8aaca5831e52c5a8487955f69fab6d27">Slic3r::IntersectionLine::skip</a></div><div class="ttdeci">bool skip</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:106</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_af70436176396fcff786a2cc28b7e51f3"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#af70436176396fcff786a2cc28b7e51f3">Slic3r::TriangleMeshSlicer::TriangleMeshSlicer</a></div><div class="ttdeci">TriangleMeshSlicer(TriangleMesh *_mesh)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:1397</div></div>
<div class="ttc" id="namespace_slic3r_html_a8aae0f299cf74413194a5966d41d0acca45043aae4a44dfa8928bed1eaaf26ec3"><div class="ttname"><a href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca45043aae4a44dfa8928bed1eaaf26ec3">Slic3r::feBottom</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:88</div></div>
<div class="ttc" id="namespace_slic3r_html_aec0518765dd6991c31ac6c40872edef8a27608ebdfb47b8076b0ed8c01be502f9"><div class="ttname"><a href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8a27608ebdfb47b8076b0ed8c01be502f9">Slic3r::Y</a></div><div class="ttdef"><b>Definition:</b> libslic3r.h:69</div></div>
<div class="ttc" id="class_slic3r_1_1_pointf_html"><div class="ttname"><a href="class_slic3r_1_1_pointf.html">Slic3r::Pointf</a></div><div class="ttdef"><b>Definition:</b> Point.hpp:104</div></div>
<div class="ttc" id="class_slic3r_1_1_polygon_html"><div class="ttname"><a href="class_slic3r_1_1_polygon.html">Slic3r::Polygon</a></div><div class="ttdef"><b>Definition:</b> Polygon.hpp:16</div></div>
<div class="ttc" id="class_slic3r_1_1_bounding_boxf3_html"><div class="ttname"><a href="class_slic3r_1_1_bounding_boxf3.html">Slic3r::BoundingBoxf3</a></div><div class="ttdef"><b>Definition:</b> BoundingBox.hpp:89</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a2523b24915fcac8a358c6dbef74361ff"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a2523b24915fcac8a358c6dbef74361ff">Slic3r::TriangleMesh::volume</a></div><div class="ttdeci">float volume()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:179</div></div>
<div class="ttc" id="namespace_slic3r_html_a8aae0f299cf74413194a5966d41d0acca3b5bf6969c0ca9d261eab021ac7d5a41"><div class="ttname"><a href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acca3b5bf6969c0ca9d261eab021ac7d5a41">Slic3r::feNone</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:88</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_aac228086b4b4f7afee6da6abfb06e993"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#aac228086b4b4f7afee6da6abfb06e993">Slic3r::TriangleMesh::check_topology</a></div><div class="ttdeci">void check_topology()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:186</div></div>
<div class="ttc" id="class_slic3r_1_1_pointf3_html"><div class="ttname"><a href="class_slic3r_1_1_pointf3.html">Slic3r::Pointf3</a></div><div class="ttdef"><b>Definition:</b> Point.hpp:129</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html">Slic3r::TriangleMesh</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:20</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ae944f47018c11b8cd10d7baeb83253d2"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ae944f47018c11b8cd10d7baeb83253d2">Slic3r::TriangleMesh::mirror_z</a></div><div class="ttdeci">void mirror_z()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:333</div></div>
<div class="ttc" id="namespace_slic3r_html_a9306b728b4672f5e56abe05ba7437fe1"><div class="ttname"><a href="namespace_slic3r.html#a9306b728b4672f5e56abe05ba7437fe1">Slic3r::ExPolygons</a></div><div class="ttdeci">std::vector&lt; ExPolygon &gt; ExPolygons</div><div class="ttdef"><b>Definition:</b> ExPolygon.hpp:13</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_line_html_abf1d49b1923f83b0c0af01cc9facfe9b"><div class="ttname"><a href="class_slic3r_1_1_intersection_line.html#abf1d49b1923f83b0c0af01cc9facfe9b">Slic3r::IntersectionLine::a_id</a></div><div class="ttdeci">int a_id</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:101</div></div>
<div class="ttc" id="namespace_slic3r_html_aec0518765dd6991c31ac6c40872edef8"><div class="ttname"><a href="namespace_slic3r.html#aec0518765dd6991c31ac6c40872edef8">Slic3r::Axis</a></div><div class="ttdeci">Axis</div><div class="ttdef"><b>Definition:</b> libslic3r.h:69</div></div>
<div class="ttc" id="class_slic3r_1_1_intersection_point_html_a82a79f7df57a8796bdb74410d2e59e1c"><div class="ttname"><a href="class_slic3r_1_1_intersection_point.html#a82a79f7df57a8796bdb74410d2e59e1c">Slic3r::IntersectionPoint::IntersectionPoint</a></div><div class="ttdeci">IntersectionPoint()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:95</div></div>
<div class="ttc" id="namespace_slic3r_html_a8aae0f299cf74413194a5966d41d0accab1eab14c434d5ab651e97df355099998"><div class="ttname"><a href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0accab1eab14c434d5ab651e97df355099998">Slic3r::feTop</a></div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:88</div></div>
<div class="ttc" id="namespace_slic3r_html_ac7ccb74e316abd7606034f0b2179b92f"><div class="ttname"><a href="namespace_slic3r.html#ac7ccb74e316abd7606034f0b2179b92f">Slic3r::IntersectionLines</a></div><div class="ttdeci">std::vector&lt; IntersectionLine &gt; IntersectionLines</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:109</div></div>
<div class="ttc" id="namespace_slic3r_html_a8aae0f299cf74413194a5966d41d0acc"><div class="ttname"><a href="namespace_slic3r.html#a8aae0f299cf74413194a5966d41d0acc">Slic3r::FacetEdgeType</a></div><div class="ttdeci">FacetEdgeType</div><div class="ttdef"><b>Definition:</b> TriangleMesh.hpp:88</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a0be942dd560d8c0bf6fff6f1f3a6aef9"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a0be942dd560d8c0bf6fff6f1f3a6aef9">Slic3r::TriangleMesh::rotate_y</a></div><div class="ttdeci">void rotate_y(float angle)</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:301</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_ae477cf56210d976c04547c99d9c64a61"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#ae477cf56210d976c04547c99d9c64a61">Slic3r::TriangleMesh::convex_hull</a></div><div class="ttdeci">Polygon convex_hull()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:501</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_slicer_html_a4ba3bfa8bd19b8b7b9b6d34fad4b9250"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh_slicer.html#a4ba3bfa8bd19b8b7b9b6d34fad4b9250">Slic3r::TriangleMeshSlicer::~TriangleMeshSlicer</a></div><div class="ttdeci">~TriangleMeshSlicer()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:1457</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a65f8cca8e3c7f493f13b94e95316a680"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a65f8cca8e3c7f493f13b94e95316a680">Slic3r::TriangleMesh::bounding_box</a></div><div class="ttdeci">BoundingBoxf3 bounding_box() const</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:514</div></div>
<div class="ttc" id="class_slic3r_1_1_triangle_mesh_html_a8ef79972e7f83fafd3db890fec712fba"><div class="ttname"><a href="class_slic3r_1_1_triangle_mesh.html#a8ef79972e7f83fafd3db890fec712fba">Slic3r::TriangleMesh::mirror_y</a></div><div class="ttdeci">void mirror_y()</div><div class="ttdef"><b>Definition:</b> TriangleMesh.cpp:328</div></div>
<div class="ttc" id="_ex_polygon_8hpp_html"><div class="ttname"><a href="_ex_polygon_8hpp.html">ExPolygon.hpp</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
